// pages/car/car.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
        goodsList:[
            // {
            //     id:1,
            //     goodsImage:"/images/goods01.jpg",
            //     goodsName:"商品名称",
            //     goodsPrice:"200",
            //     num:1,
            // },            
            // {
            //     id:2,
            //     goodsImage:"/images/goods01.jpg",
            //     goodsName:"商品名称",
            //     goodsPrice:"200",
            //     num:1,
            // },
        ],
        totalData:0,//总价格
    },

    // 数量加一
    add(event){
        let index = event.target.dataset.index;
        // 第一种写法 推荐
        this.data.goodsList[index].num +=1;
        // 更新数据到页面上
        this.setData({
            goodsList:this.data.goodsList
        })
        // 第二种写法
        // let num = this.data.goodsList[index].num;
        // let key = "goodsList["+index+"].num";
        // this.setData({
        //     [key]:num+=1
        // })
        this.getTotal(); //计算总价格
    },

    // 数量减一
    sub(event){
        let index = event.target.dataset.index;
        let num = this.data.goodsList[index].num;
        let key = "goodsList["+index+"].num";
        num = num <=1?1:num-1;
        this.setData({
            [key]:num
        })
        this.getTotal(); //计算总价格
    },

    // 删除功能
    del(event){
        let index = event.currentTarget.dataset.index;
        this.data.goodsList.splice(index,1); //删除数据
        this.setData({ //更新数据
            goodsList:this.data.goodsList
        })
        this.getTotal(); //计算总价格
    },

    // 计算总价格
    getTotal(){
        // 获取数据
        let goodsList = this.data.goodsList;
        if(!goodsList){ //没有数据
            return;
        }
        // 总价格
        let data = goodsList.reduce((total,item)=>{
            return total + item.num * item.goodsPrice
        },0)
        this.setData({
            totalData:data
        })
    },
    // 跳转支付页面
    goOrder(){
        let userinfo = wx.getStorageSync('userinfo');
        
        // 判断是否登录
        if(userinfo){
            // 保留当前页面，跳转到应用内的某个页面。
            wx.navigateTo({
              url: '/pages/pay/pay',
            })
        }else{
            // 提示
            wx.showToast({
                title: '请登录',
                icon: 'none',
                duration: 3000,
                success(){
                    // 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面
                    setTimeout(()=>{
                        wx.switchTab({
                            url: '/pages/my/my',
                        })
                    },3000)
                }
              })
            
        }
    },


    /**
     * 生命周期函数--监听页面加载
     * 网络请求数据
     */
    onLoad: function (options) {
        console.log("=====onload")
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {
        console.log("=====onShow")
        // 获取缓存数据
        let goodsCarList = wx.getStorageSync('goodsCarList');
        this.setData({
            goodsList:goodsCarList
        })
        this.getTotal(); //计算总价格
    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {
        console.log("=====onHide")
        wx.setStorageSync('goodsCarList', this.data.goodsList)
    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    }
})